The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated and complex computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
As the sophistication and complexity of computer software increase, the more problems, faults, or errors the software tends to have. Thus, it is common after a release of a software program for a customer to report a problem and the developer of the software to fix the problem and release a new version of the software that fixes the problem. Developers often release multiple versions that include fixes for different problems, and these versions are separate from the regularly scheduled releases of the software. Sometimes the versions are called PTFs (Program Temporary Fixes) to distinguish them from the regularly scheduled releases, which include not only fixes to problems but also new and enhanced functions.
Usually, only customers that have encountered the problem and have a specific need for a solution will want to install the new version that includes the fix because a fix to one problem might inadvertently cause another problem. Customers that have not encountered the problem or who perceive a low likelihood of encountering the problem will wait until the fix has been used by others for a substantial length of time without problems in order to lessen the risk of installing the fix to the software. Other customers have no idea of the risk versus benefit of installing fixes, so they blindly install all fixes or install no fixes at all.
Some customers have the resources to employ a system administrator, who knows the needs and software usage patterns of the customer's users. This system administrator might be savvy enough to read the list of available fixes and problems and make an informed and intelligent choice regarding which fix to apply to which users' computer. The system administrator might take into account the length of time the fixed version has been available, the harm to the customer that might occur if the problem is encountered, and the likelihood that the problem will be encountered. But, with the advent of the Internet and the desire by many customers to reduce costs by avoiding the need to employ system administrators, applying fixes is becoming more automated with less intervention by a human decision-maker.
Without a better way to automatically decide which fixes to install, customers will continue to suffer the costs of employing human decision-makers, will continue to install fixes that introduce risk but no benefit, and will continue to encounter problems even though a fix was available that they could have installed to obviate the problem.